-
-
Couldn't load subscription status.
- Fork 284
Keyboard navigation layers #224
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Toggle grouping node content selection state by keyboard Use element Top-Left for directional navigation Fix Ctrl+Tab in container's children causing the editor to lose focus
Disconnect connector via keyboard
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request introduces extensive improvements to keyboard navigation and focus visuals across Nodify’s various applications, including new settings for connection visuals and a custom keyboard navigation layer system. Key changes include modifications to event handlers for keyboard focus updates, additions of new dependency properties and settings for connection styling, and the integration of focus visual styles in XAML resource dictionaries.
Reviewed Changes
Copilot reviewed 67 out of 67 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| Examples/Nodify.Shared/Controls/EditableTextBlock.cs | Unsubscribing from TextBox events is added before re-attaching a new template. |
| Examples/Nodify.Shapes/MainWindow.xaml.cs | A keyboard focus handler is added that updates the window title with the new focus element. |
| Examples/Nodify.Shapes/Canvas/CanvasView.xaml | XAML adjustments to set Focusable to False and add FocusVisualPadding to improve navigation visuals. |
| Examples/Nodify.Shapes/App.xaml(.cs) | Gesture mappings updated to support key based interactions with the editor viewport. |
| Examples/Nodify.Playground/* | Enhancements include added focus visuals, new settings for connection visuals, and a keyboard navigation layer property in the view model. |
| Examples/Nodify.Calculator/* | Modifications include focus restoration in the operations menu, added context menu command bindings, and updated resource dictionaries for focus visuals. |
| CHANGELOG.md | The changelog is updated with a detailed list of new features and API changes for keyboard navigation and viewport operations. |
Comments suppressed due to low confidence (3)
Examples/Nodify.Shapes/MainWindow.xaml.cs:23
- Consider removing or updating this debug code that sets the window title with the focused element when in production.
Title = e.NewFocus.ToString();
Examples/Nodify.Playground/MainWindow.xaml.cs:67
- This focus change handler updates the window title for debugging purposes; ensure this behavior is intended for production or remove it before release.
Title = e.NewFocus.ToString();
Examples/Nodify.Calculator/MainWindow.xaml.cs:23
- The focus handler updates the title with the new focus element which appears to be for debugging; consider removing or refactoring this for production use.
Title = e.NewFocus.ToString();
📝 Description of the Change
ConnectionStrokeThickness,ConnectionOutlineThicknessandConnectionFocusVisualPaddingSee the change log for more information.
Keybindings:
Ctrl+Tabto escape the current focus trap (focus parent element)TaborShift-Tabon a node focus its contents (connectors) - default WPF behaviorTaborShift-Tabon the editor to focus the next element - default WPF behaviorarrow keysfor directional navigation between nodes (or connections)Ctrl+arrow keysfor moving the selected nodesSpace+arrow keysfor panning the editor viewportSpaceorEnterto toggle the selected state of the focused node (or connection)Ctrl+Spaceon a selected grouping node to toggle the selection state of the child nodesEscapeto deselect all items on the active keyboard navigation layerCtrl+]to activate the next keyboard navigation layerCtrl+[to activate the previous keyboard navigation layerarrow keysto pan the minimapCtrl+PlusorCtrl+Minusto zoom in/out in the minimap/editorHometo reset the viewport in minimap/editorRelated: #89
Closes: #194, #195, #197, #198
🐛 Possible Drawbacks
Increased code complexity.